Database Tutorials Redis Pub/Sub Channels তৈরি করা গাইড ও নোট

378

Redis Pub/Sub (Publish/Subscribe) হল একটি messaging প্যাটার্ন যা রেডিসের মাধ্যমে রিয়েল-টাইম মেসেজিং সিস্টেম তৈরি করতে ব্যবহৃত হয়। Pub/Sub প্যাটার্নে, একটি Publisher মেসেজ প্রকাশ করে এবং এক বা একাধিক Subscriber সেই মেসেজ গ্রহণ করে। Redis Pub/Sub ব্যবহার করে আপনি একটি চ্যানেল তৈরি করতে পারেন যেখানে মেসেজ পাঠানো এবং গ্রহণ করা হয়।


Redis Pub/Sub Channels তৈরি করার ধারণা

Redis Pub/Sub ব্যবহার করতে, একটি বা একাধিক ক্লায়েন্ট Publisher হিসেবে মেসেজ প্রেরণ করবে এবং অন্য ক্লায়েন্ট Subscriber হিসেবে সেই মেসেজ গ্রহণ করবে। চ্যানেলগুলো Redis-এ ডায়নামিকভাবে তৈরি হয়, অর্থাৎ আপনাকে চ্যানেল তৈরি করার জন্য কোনো পূর্বনির্ধারিত কাজ করতে হয় না, এটি সম্পূর্ণরূপে রানটাইমে পরিচালিত হয়।

Redis Pub/Sub-এর মূল কমান্ডগুলো হলো:

  1. PUBLISH - Publisher চ্যানেলে মেসেজ প্রেরণ করে।
  2. SUBSCRIBE - Subscriber চ্যানেলে মেসেজ গ্রহণ করার জন্য সাবস্ক্রাইব করে।
  3. UNSUBSCRIBE - Subscriber চ্যানেল থেকে সাবস্ক্রাইব বাতিল করে।

Redis Pub/Sub Channels তৈরি এবং ব্যবহারের জন্য উদাহরণ

১. Redis CLI-তে Pub/Sub ব্যবহারের জন্য নির্দেশনা

  1. Publisher (PUBLISH)

    • Redis CLI-এ একটি চ্যানেলে মেসেজ পাঠানোর জন্য PUBLISH কমান্ড ব্যবহার করতে হবে।
    • উদাহরণস্বরূপ, আমরা একটি চ্যানেল news তে একটি মেসেজ পাঠাবো:
    PUBLISH news "Breaking news: Redis Pub/Sub in action!"
    
  2. Subscriber (SUBSCRIBE)

    • একটি চ্যানেলে মেসেজ গ্রহণ করার জন্য SUBSCRIBE কমান্ড ব্যবহার করতে হবে।
    • আপনি যদি news চ্যানেলে সাবস্ক্রাইব করতে চান, তবে নিচের কমান্ডটি ব্যবহার করুন:
    SUBSCRIBE news
    
  3. একাধিক চ্যানেলে সাবস্ক্রাইব করা

    • আপনি একাধিক চ্যানেলে সাবস্ক্রাইব করতে পারেন। উদাহরণস্বরূপ:
    SUBSCRIBE news sports
    
  4. Unsubscribe (UNSUBSCRIBE)

    • আপনি একটি বা একাধিক চ্যানেল থেকে সাবস্ক্রাইব বাতিল করতে UNSUBSCRIBE কমান্ড ব্যবহার করতে পারেন:
    UNSUBSCRIBE news
    

২. Python-এ Redis Pub/Sub ব্যবহার

Redis Pub/Sub ব্যবহারের জন্য Python-এ redis-py লাইব্রেরি ব্যবহার করা হয়। প্রথমে, লাইব্রেরি ইনস্টল করতে হবে:

pip install redis

Publisher কোড (Python)

import redis

# Redis ক্লায়েন্ট তৈরি
r = redis.Redis()

# মেসেজ প্রকাশ (Publish)
channel = 'news'
message = 'Breaking news: Redis Pub/Sub in Python!'
r.publish(channel, message)

print(f"Message '{message}' published to channel {channel}")

Subscriber কোড (Python)

import redis

# Redis ক্লায়েন্ট তৈরি
r = redis.Redis()

# চ্যানেল সাবস্ক্রাইব করা
pubsub = r.pubsub()
pubsub.subscribe('news')

print("Subscribed to 'news' channel")

# মেসেজ গ্রহণ করা
for message in pubsub.listen():
    print(message)
    if message['type'] == 'message':
        print(f"Received message: {message['data']}")
  • Publisher কোডে r.publish(channel, message) কমান্ড ব্যবহার করা হয়েছে যা চ্যানেল news তে মেসেজ পাঠাবে।
  • Subscriber কোডে pubsub.subscribe('news') দিয়ে চ্যানেলে সাবস্ক্রাইব করা হয়েছে এবং pubsub.listen() ব্যবহার করে মেসেজ শুনা হচ্ছে।

৩. Node.js-এ Redis Pub/Sub ব্যবহার

Node.js-এ Redis Pub/Sub ব্যবহারের জন্য ioredis লাইব্রেরি ব্যবহার করা হয়। প্রথমে, এই লাইব্রেরি ইনস্টল করতে হবে:

npm install ioredis

Publisher কোড (Node.js)

const Redis = require('ioredis');
const redis = new Redis();

// মেসেজ প্রকাশ (Publish)
const channel = 'news';
const message = 'Breaking news: Redis Pub/Sub in Node.js!';
redis.publish(channel, message)
  .then(() => {
    console.log(`Message '${message}' published to channel ${channel}`);
  });

Subscriber কোড (Node.js)

const Redis = require('ioredis');
const redis = new Redis();

// চ্যানেল সাবস্ক্রাইব করা
const channel = 'news';
redis.subscribe(channel, (err, count) => {
  if (err) {
    console.error("Subscription failed:", err);
  } else {
    console.log(`Subscribed to ${channel} channel`);
  }
});

// মেসেজ গ্রহণ করা
redis.on('message', (channel, message) => {
  console.log(`Received message: ${message} from channel ${channel}`);
});
  • Publisher কোডে redis.publish(channel, message) কমান্ড ব্যবহার করা হয়েছে যা চ্যানেল news তে মেসেজ পাঠাবে।
  • Subscriber কোডে redis.subscribe(channel) দিয়ে চ্যানেলে সাবস্ক্রাইব করা হয়েছে এবং redis.on('message') দিয়ে মেসেজ গ্রহণ করা হচ্ছে।

৪. Redis Pub/Sub এর সুবিধা

  1. রিয়েল-টাইম মেসেজিং: Pub/Sub প্যাটার্ন রিয়েল-টাইম মেসেজিংয়ের জন্য উপযুক্ত।
  2. ডিসকনফিগারযোগ্য: Redis Pub/Sub ডায়নামিকভাবে চ্যানেল তৈরি করতে পারে, তাই এটি খুবই ফ্লেক্সিবল।
  3. বিভিন্ন ব্যবহার: চ্যাট অ্যাপ্লিকেশন, লাইভ আপডেট, অ্যালার্ট সিস্টেম, ফিড আপডেট, ইত্যাদিতে এটি ব্যবহৃত হতে পারে।
  4. অর্ডার বিহীন: Pub/Sub মেসেজগুলি অর্ডার বিহীনভাবে সাবস্ক্রাইবারদের কাছে পাঠানো হয়।

সারাংশ

Redis Pub/Sub হল একটি শক্তিশালী মেসেজিং প্যাটার্ন যা রেডিস সার্ভারের মাধ্যমে রিয়েল-টাইম মেসেজ আদান প্রদান করতে ব্যবহৃত হয়। আপনি চ্যানেল তৈরি করে এবং মেসেজ প্রকাশ ও গ্রহণ করে বিভিন্ন ধরনের রিয়েল-টাইম অ্যাপ্লিকেশন তৈরি করতে পারেন। Redis Pub/Sub বিভিন্ন প্রোগ্রামিং ভাষায় সমর্থিত এবং এটি খুবই সহজে ব্যবহারযোগ্য।

Content added By
Promotion

Are you sure to start over?

Loading...